package com.ssy.lingxi.member.merchant.model.vo.info.response;

import com.ssy.lingxi.member.merchant.model.vo.maintenance.response.MemberDetailRightConfigVO;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * App - 会员等级、权益基本信息返回VO
 * @author 万宁
 * @version 2.0.0
 * @date 2020-12-08
 */
public class MobileInfoLevelRightVO implements Serializable {
    private static final long serialVersionUID = 2472591329130256851L;

    public MobileInfoLevelRightVO() {
        this.logo = "";
        this.level = 0;
        this.levelTag = "";
        this.score = 0;
        this.nextLevelTag = "";
        this.nextScore = 0;
        this.sumReturnMoney = BigDecimal.ZERO;
        this.currentPoint = 0;
        this.rights = new ArrayList<>();
    }

    public MobileInfoLevelRightVO(String logo) {
        this.logo = logo;
        this.upperMemberId = 0L;
        this.upperRoleId = 0L;
        this.level = 0;
        this.levelTag = "";
        this.score = 0;
        this.nextLevelTag = "";
        this.nextScore = 0;
        this.sumReturnMoney = BigDecimal.ZERO;
        this.currentPoint = 0;
        this.rights = new ArrayList<>();
    }

    /**
     * 上级会员Id
     */
    private Long upperMemberId;

    /**
     * 上级会员角色Id
     */
    private Long upperRoleId;

    /**
     * 当前登录会员logo
     */
    private String logo;

    /**
     * 当前等级
     */
    private Integer level;

    /**
     * 当前等级名称
     */
    private String levelTag;

    /**
     * 当前活跃分
     */
    private Integer score;

    /**
     * 下一等级，如没有下一等级为空字符串
     */
    private String nextLevelTag;

    /**
     * 下一等级所需活跃分，如没有下一级为0
     */
    private Integer nextScore;

    /**
     * 累计返现金额
     */
    private BigDecimal sumReturnMoney;

    /**
     * 当前可用积分
     */
    private Integer currentPoint;

    /**
     * 当前益列表
     */
    private List<MemberDetailRightConfigVO> rights;

    public Long getUpperMemberId() {
        return upperMemberId;
    }

    public void setUpperMemberId(Long upperMemberId) {
        this.upperMemberId = upperMemberId;
    }

    public Long getUpperRoleId() {
        return upperRoleId;
    }

    public void setUpperRoleId(Long upperRoleId) {
        this.upperRoleId = upperRoleId;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getLevelTag() {
        return levelTag;
    }

    public void setLevelTag(String levelTag) {
        this.levelTag = levelTag;
    }

    public Integer getScore() {
        return score;
    }

    public void setScore(Integer score) {
        this.score = score;
    }

    public String getNextLevelTag() {
        return nextLevelTag;
    }

    public void setNextLevelTag(String nextLevelTag) {
        this.nextLevelTag = nextLevelTag;
    }

    public Integer getNextScore() {
        return nextScore;
    }

    public void setNextScore(Integer nextScore) {
        this.nextScore = nextScore;
    }

    public BigDecimal getSumReturnMoney() {
        return sumReturnMoney;
    }

    public void setSumReturnMoney(BigDecimal sumReturnMoney) {
        this.sumReturnMoney = sumReturnMoney;
    }

    public Integer getCurrentPoint() {
        return currentPoint;
    }

    public void setCurrentPoint(Integer currentPoint) {
        this.currentPoint = currentPoint;
    }

    public List<MemberDetailRightConfigVO> getRights() {
        return rights;
    }

    public void setRights(List<MemberDetailRightConfigVO> rights) {
        this.rights = rights;
    }
}
